package servidor;
import java.util.Set;

import comum.CartaComum;
import comum.Jogador;
import java.util.LinkedHashSet;




public class RN_JogadorConectado  {
	

    /**
     * 
     */
    private static final long serialVersionUID = 7921808631863206352L;
    LinkedHashSet<CartaComum> mao;
    
    private Jogador jogador;
    public RN_JogadorConectado(String nome) {
        this.jogador = new Jogador(nome);
    }

    public Jogador getJogador() {
        return jogador;
    }

    public LinkedHashSet<CartaComum> getMao() {
        return mao;
    }

    public void setMao(LinkedHashSet<CartaComum> mao) {
        this.mao = mao;
        this.jogador.setMaoDeCartas(mao);
    }   
    
    public void registrarMaoDeCartas(LinkedHashSet<CartaComum> mao) {
        setMao(mao);
        
        
//        Thread t = new Thread(){
//            @Override
//            public void run(){
                SO_PresidenteServidor.getServidor().registrarMaoDeCartas(getJogador(), getMao());
//            }
//        };
//        t.start();
    }

    public void atualizarMaoDeCartas(Set<CartaComum> selecao) {
        LinkedHashSet<CartaComum> cartasARemover = new LinkedHashSet<CartaComum>();
        
        for(CartaComum carta : getMao()){
            for(CartaComum sel : selecao){
                if(carta.getNaipe()==sel.getNaipe() && carta.getValor()==sel.getValor()){
                    cartasARemover.add(carta);
                }
            }
        }
        
        getMao().removeAll(cartasARemover);
        this.jogador.setMaoDeCartas(getMao());
        
    }


}
